<p>for messages which the container can send back to the server.</p>
<div class="example"><pre>
AJP13_SEND_BODY_CHUNK :=
prefix_code 3
chunk_length (integer)
chunk *(byte)
AJP13_SEND_HEADERS :=
prefix_code 4
http_status_code (integer)
http_status_msg (string)
num_headers (integer)
response_headers *(res_header_name header_value)
res_header_name :=
sc_res_header_name | (string) [see below for how this is parsed]
sc_res_header_name := 0xA0 (byte)
header_value := (string)
AJP13_END_RESPONSE :=
prefix_code 5
reuse (boolean)
AJP13_GET_BODY_CHUNK :=
prefix_code 6
requested_length (integer)
</pre></div>
<h3>Details:</h3>
<h3>Send Body Chunk</h3>
<p>The chunk is basically binary data, and is sent directly back to the
browser.</p>
<h3>Send Headers</h3>
<p>The status code and message are the usual HTTP things
(e.g. <code>200</code> and <code>OK</code>). The response header names are
encoded the same way the request header names are. See header_encoding above
for details about how the the codes are distinguished from the strings.<br />
The codes for common headers are:</p>
<table>
<tr><td>Name</td><td>Code value</td></tr>
<tr><td>Content-Type</td><td>0xA001</td></tr>
<tr><td>Content-Language</td><td>0xA002</td></tr>
<tr><td>Content-Length</td><td>0xA003</td></tr>
<tr><td>Date</td><td>0xA004</td></tr>
<tr><td>Last-Modified</td><td>0xA005</td></tr>
<tr><td>Location</td><td>0xA006</td></tr>
<tr><td>Set-Cookie</td><td>0xA007</td></tr>
<tr><td>Set-Cookie2</td><td>0xA008</td></tr>
<tr><td>Servlet-Engine</td><td>0xA009</td></tr>
<tr><td>Status</td><td>0xA00A</td></tr>
<tr><td>WWW-Authenticate</td><td>0xA00B</td></tr>
</table>
<p> After the code or the string header name, the header value is
immediately encoded.</p>
<h3>End Response</h3>
<p>Signals the end of this request-handling cycle. If the
<code>reuse</code> flag is true <code>(==1)</code>, this TCP connection can
now be used to handle new incoming requests. If <code>reuse</code> is false
(anything other than 1 in the actual C code), the connection should
be closed.</p>
<h3>Get Body Chunk</h3>
<p>The container asks for more data from the request (If the body was
too large to fit in the first packet sent over or when the request is
chuncked). The server will send a body packet back with an amount of data
which is the minimum of the <code>request_length</code>, the maximum send
body size <code>(8186 (8 Kbytes - 6))</code>, and the number of bytes
actually left to send from the request body.<br />
If there is no more data in the body (i.e. the servlet container is
trying to read past the end of the body), the server will send back an
<em>empty</em> packet, which is a body packet with a payload length of 0.
<code>(0x12,0x34,0x00,0x00)</code></p>
</div>
</div>
<div class="bottomlang">
<p><span>Available Languages: </span><a href="../en/mod/mod_proxy_ajp.html" title="English"> en </a> |
<a href="../ja/mod/mod_proxy_ajp.html" hreflang="ja" rel="alternate" title="Japanese"> ja </a></p>
</div><div id="footer">
<p class="apache">Copyright 1995-2006 The Apache Software Foundation or its licensors, as applicable.<br />Licensed under the <a href="http://www.apache.org/licenses/LICENSE-2.0">Apache License, Version 2.0</a>.</p>